<html>
<head><meta charset="utf-8"><title>Edition breaking changes suggestions · t-lang · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/index.html">t-lang</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Edition.20breaking.20changes.20suggestions.html">Edition breaking changes suggestions</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="193723826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Edition%20breaking%20changes%20suggestions/near/193723826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> BatmanAoD (Kyle Strand) <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Edition.20breaking.20changes.20suggestions.html#193723826">(Apr 12 2020 at 18:19)</a>:</h4>
<p>Is there any existing place for discussing possible breaking changes for the 2021 edition?</p>
<p>One thing I've mentioned briefly before is that the <code>extern</code> keyword is confusing. According to the spec, when applied to definitions (rather than declarations), it's supposed to just mean that the function's ABI is explicitly specified. For blocks of declarations, it means the functions are "imported". I think it would be clearer for the function definition keyword to be something like <code>abi</code>. </p>
<p>Also, <code>no_mangle</code> functions are automatically made public and added to the global symbol table in ELF, even without additional annotations. (This is possibly a bug.) This is probably what most users would expect from the <code>extern</code> keyword. If we keep the <code>extern</code> keyword instead of switching to <code>abi</code>, maybe it would be good for it to automatically have this "automatically public and linkable" effect.</p>



<a name="193768638"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Edition%20breaking%20changes%20suggestions/near/193768638" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanieu <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Edition.20breaking.20changes.20suggestions.html#193768638">(Apr 13 2020 at 12:51)</a>:</h4>
<p><code>no_mangle</code> being made public is a feature. The behavior is intentional, though perhaps poorly named/documented.</p>



<a name="193783134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Edition%20breaking%20changes%20suggestions/near/193783134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Edition.20breaking.20changes.20suggestions.html#193783134">(Apr 13 2020 at 15:26)</a>:</h4>
<p><span class="user-mention" data-user-id="143274">@Amanieu</span> I do think we need a better mechanism to control symbol visibility than that, though.</p>



<a name="193783864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/213817-t-lang/topic/Edition%20breaking%20changes%20suggestions/near/193783864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Lokathor <a href="https://rust-lang.github.io/zulip_archive/stream/213817-t-lang/topic/Edition.20breaking.20changes.20suggestions.html#193783864">(Apr 13 2020 at 15:33)</a>:</h4>
<p>Obviously we call it <code>global</code> like you do in assembly :3</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>